package com.codedancer.campus.manager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.manager.service.bo.dynamic.DynamicExamineBo;
import com.codedancer.campus.manager.service.bo.dynamic.DynamicPageSearchBo;
import com.codedancer.campus.manager.service.vo.dynamic.DynamicPageVo;
import com.codedancer.campus.manager.service.vo.dynamic.DynamicVo;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface IDynamicService {

    /**
     * 分页查询动态
     * @param dynamicPageSearchBo
     * @return
     */
    IPage<DynamicPageVo> page(DynamicPageSearchBo dynamicPageSearchBo);

    /**
     * 动态详情
     * @param uuid
     * @return
     */
    DynamicVo detail(String uuid);

    /**
     * 审核未通过
     * @param dynamicExamineBo
     */
    void noPass(DynamicExamineBo dynamicExamineBo);

    /**
     * 审核通过
     * @param dynamicExamineBo
     */
    void pass(DynamicExamineBo dynamicExamineBo);

    /**
     * 开启评论
     * @param uuid
     */
    void openComment(String uuid);

    /**
     * 关闭评论
     * @param uuid
     */
    void closeComment(String uuid);

    /**
     * 删除动态
     * @param uuid
     */
    void delete(String uuid);

    /**
     * 导出动态
     * @param request
     * @param response
     * @param dynamicPageSearchBo
     */
    void export(HttpServletRequest request, HttpServletResponse response, DynamicPageSearchBo dynamicPageSearchBo);

    /**
     * 批量删除
     * @param uuids
     */
    void batchDelete(List<String> uuids);

    /**
     * 分页查询某个圈子下的动态
     * @param dynamicPageSearchBo
     * @return
     */
    IPage<DynamicPageVo> pageByCircleUuid(DynamicPageSearchBo dynamicPageSearchBo);
}
